Remove gtk_paste_point_override mark if we don't insert any text.
authorIgnacio Casal Quinteiro <icq@gnome.org>
Fri, 28 Jan 2011 12:24:26 +0000 (13:24 +0100)
committerIgnacio Casal Quinteiro <icq@gnome.org>
Fri, 28 Jan 2011 12:26:00 +0000 (13:26 +0100)
This patch fixes bug #590459.

gtk/gtktextbuffer.c

index 3a4535777bc4f26a1100f110d826eca70371bad0..58ca341d32a589d7ae58d10566ba81d556e37e22 100644 (file)
@@ -3292,9 +3292,7 @@ get_paste_point (GtkTextBuffer *buffer,
       gtk_text_buffer_get_iter_at_mark (buffer, &insert_point,
                                         paste_point_override);
       if (clear_afterward)
-        gtk_text_buffer_delete_mark (buffer,
-                                     gtk_text_buffer_get_mark (buffer,
-                                                               "gtk_paste_point_override"));
+        gtk_text_buffer_delete_mark (buffer, paste_point_override);
     }
   else
     {
@@ -3393,6 +3391,18 @@ clipboard_text_received (GtkClipboard *clipboard,
 
       emit_paste_done (buffer, clipboard);
     }
+  else
+    {
+      /* It may happen that we set a point override but we are not inserting
+         any text, so we must remove it afterwards */
+      GtkTextMark *paste_point_override;
+
+      paste_point_override = gtk_text_buffer_get_mark (buffer,
+                                                       "gtk_paste_point_override");
+
+      if (paste_point_override != NULL)
+        gtk_text_buffer_delete_mark (buffer, paste_point_override);
+    }
 
   free_clipboard_request (request_data);
 }